/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import java.util.Date;
import persistencia.PersistenciaAlquiler;

/**
 *
 * @author JAVA
 */
public final class Devolucion {

    
    private Alquiler alquiler;
    private Date fecha;
    
    public Devolucion(Date fecha, Alquiler alquiler) {
        this.fecha=fecha;
        this.alquiler = alquiler;
    }

    public Alquiler getAlquiler() {
        return alquiler;
    }

    public void setAlquiler(Alquiler alquiler) {
        this.alquiler = alquiler;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }


    public void calcularRecargo(ArticuloAlquilado aa) {
        long diferencia = getFecha().getTime() - aa.getFechaEntrega().getTime();
        double dias = Math.ceil(diferencia / (1000 * 60 * 60 * 24));
        if (dias >= 1) {
            aa.setRecargo((int) dias * (aa.getTarifa().getPrecioAlquiler() / 2));
            System.out.println("El recargo es de: "+aa.getRecargo()+" por "+dias+" dias de retraso");
        }
    }
    
    public void devolverArticulo(ArticuloAlquilado aa) throws Exception{
        if(this.alquiler.getListArt().contains(aa)){
            calcularRecargo(aa);            
            if(PersistenciaAlquiler.devolverArticulo(this.alquiler, aa)!=1){
                throw new ExcepcionPersistencia("El articulo no fue devuelto correctamente");
            }
            this.alquiler.getListArt().remove(aa);
        }
        else{
            throw new Exception("El articulo no se encuentra en la lista de articulos alquilados");
        }
    }
}
